home *** CD-ROM | disk | FTP | other *** search
/ Die Speccy' 97 / Die Speccy' 97.iso / amiga_system / the_aminet / dev / lang / python_src.lha / amigapython / BUGS < prev    next >
Text File  |  1995-10-22  |  12KB  |  374 lines

  1. THIS LIST DOES NOT CLAIM COMPLETENESS.
  2.  
  3. ==> Status indicators: (-) not fixed; (*) fixed; (?) not sure.
  4.  
  5. ======================================================================
  6.  
  7. Problems that are difficult to solve
  8. ------------------------------------
  9.  
  10. (-) "f()=0" generates syntax error msg without line number
  11.  
  12. (-) tkinter seems to leave an exception around sometime which breaks
  13. unmarshalling code objects [hard to reproduce, have added a trap to
  14. marshal.c to catch it]
  15.  
  16. (-) destroying all modules may destroy __builtin__ (or other modules)
  17. while destructors of other modules may still need it [hard to fix --
  18. could maintain a list of all modules in order of importation so we can
  19. destroy them in reverse order???  really hopeless -- would have to
  20. destroy objects in a module in reverse order too...]
  21.  
  22. (-) doneimport() should be called *before* the Py_AtExit code is
  23. called [problem: what if other threads are still active?]
  24.  
  25. Known portability problems
  26. --------------------------
  27.  
  28. (-) arraymodule doesn't compile under Ultrix (FPROTO macro)
  29.  
  30. (-) makesetup assumes CCC is the C++ compiler -- not portable
  31.  
  32. (-) "make depend" assumes mkdep exists -- not portable
  33.  
  34. (-) regen calls h2py which isn't defined by default
  35.  
  36. (-) HP doesn't compile out of the box (needs LIBS=-ldld or
  37. LIBS=/usr/lib/libdld.sl) [hard to test without a HP machine handy]
  38.  
  39. ======================================================================
  40. BUGS present in 1.1.1 and fixed in 1.2
  41. --------------------------------------
  42.  
  43. (*) extraneous fclose() in run_script() in pythonrun.c for .pyc file
  44.  
  45. (*) __str__ is called if it exists (and then fails) when applying
  46. str() to a class
  47.  
  48. (*) mem leaks in inittime() in timemodule.c
  49.  
  50. (*) mem leak in optimize() in compile.c
  51.  
  52. (*) mem leak in func_dealloc() in funcobject.c
  53.  
  54. (*) missing DECREF for result of run_string in exec_statement() in
  55. ceval.c
  56.  
  57. (*) missing INCREF in RAISE_EXCEPTION case after gettupleitem() in
  58. ceval.c
  59.  
  60. (*) posix.utime gives problems on problems on platforms where struct
  61. utime members are bitfields
  62.  
  63. (*) leak in regex module.c:reg_dealloc() -- should free compiled pattern
  64.  
  65. (*) many uses of macros from <ctype.h> fail with signed characters
  66.  
  67. (*) compilation on NeXT requires manual editing of the Makefile
  68.  
  69. (*) tkinter should cast malloc() result
  70.  
  71. (*) marshal.c (w_object()) triggers GCC bug on DEC Alpha
  72.  
  73. (*) int/long size bug in range() and xrange() on DEC Alpha
  74.  
  75. (*) memory leaks in dbm and gdbm modules
  76.  
  77. (*) refcnt bug in select.select([f], [f], [f])
  78.  
  79. (*) Should fflush(stdout) before printing traceback to stderr
  80.  
  81. (*) Linux uses GNU getopt by default which is broken
  82.  
  83. (*) make sharedinstall references to machdep directory but doesn't
  84. create it
  85.  
  86. (*) a file with unmatched triple quotes causes a loop in the scanner
  87.  
  88. (*) [X]DECREF can cause the interpreter to be called recursively (for
  89. __del__ disciplines) -- so list and dict implementation calls doing
  90. DECREF can cause recursive calls to methods of the object being
  91. modified.  Other files too.
  92.  
  93. (*) if __getattr__ or __repr__ prints something, calling repr(x) from
  94. cmd line forgets a newline
  95.  
  96. (*) C-level coerce() doesn't call __coerce__ when it should (and
  97. similar for __cmp__)
  98.  
  99. (*) struct module assigns unaligned doubles when compiled with -DDEBUG
  100. on sparc
  101.  
  102. (*) memory leak (namebuf) in initmodule2
  103.  
  104. (*) hash() of float values returns bogus values
  105.  
  106. (*) pow(int, int, long) does wrong series of DECREF() calls.
  107.  
  108. (*) flushline() may clear the exception condition so shouldn't be
  109. called before print_error()
  110.  
  111. (*) Everything else that uses err_get() should use err_fetch()
  112.  
  113. (*) sockets aren't thread safe (address of static struct returned,
  114. some calls aren't thread safe)
  115.  
  116. (*) threadmodule.c leaks LOTS of memory at thread exit
  117.  
  118. (*) shared install in Modules still doesn't work for empty list
  119.  
  120. (*) threadmodule.c leaks 'res' in t_bootstrap
  121.  
  122. (*) errors.c shouldn't declare strerror() on NT
  123.  
  124. (*) DECREF can cause the interpreter to be called recursively (for
  125. __del__ disciplines) -- so list and dict implementation calls doing
  126. DECREF can cause recursive calls to methods of the object being
  127. modified.  Other files too.  (Only partially fixed.)
  128.  
  129. (*) tkinter dereferences NULL if timer callback raises an exception
  130.  
  131. (*) must link with -lieee for linux
  132.  
  133. (*) if a timer handler routine raises an exception, the interpreter
  134. dereferences NULL
  135.  
  136. (*) __getattr__ doesn't clear error
  137.  
  138. (*) '%s' % a, where a is a class instance, fails
  139.  
  140. (*) "make test" won't find freshly built dynamically loaded modules --
  141. should add ./Modules to TESTPATH
  142.  
  143. (*) lshift calls __rshift__ instead of __rlshift__
  144.  
  145. (*) memory leak in creation of sys.builtin_module_names
  146.  
  147. (*) Bugs in instance_dealloc(): (a) memory leak for exception
  148. type+value; (2) should save+restore traceback as well
  149.  
  150. (*) modsupport.c(vmkvalue): on systems where va_list is an array, the
  151. calls to do_mkvalue and do_mktuple don't want an "&" before va.
  152.  
  153. ======================================================================
  154. BUGS found in 1.1 and fixed in 1.1.1
  155. ------------------------------------
  156.  
  157. (*) printing name of lambda in traceback dereferences NULL
  158.  
  159. (*) A built-in function using getargs() and expecting >= 1 argument
  160. may dump core when called without arguments
  161.  
  162. (*) newgetargs() dumps core in compat mode when NULL is passed in but
  163. max is >0
  164.  
  165. (*) pow() should be declared varargs since it uses newgetargs
  166.  
  167. (*) newmodule.c doesn't compile on SunOS 4.1.3 due to non-K&R backslashes
  168.  
  169. (*) some typos in tut.tex
  170.  
  171. (*) test for broken static forward is not strong enough
  172.  
  173. (*) Doc/Makefile assumes . is in $PATH in call to whichlibs
  174.  
  175. (*) math module misses hypot() function
  176.  
  177. (*) structmember.h should include stddef.h (for offsetof macro)
  178.  
  179. (*) gdbmmodule.c frees the wrong structures
  180.  
  181. (*) makesetup script misses some dollars and backslashes
  182.  
  183. (*) getargs.obj missing from NT makefile
  184.  
  185. (*) sorting class instances broken if no __cmp__ defined
  186.  
  187. ======================================================================
  188. BUGS found in 1.0.3 and fixed in 1.1
  189. ------------------------------------
  190.  
  191. (*) 2 specific leaks: 1 PYTHONPATH; 2 reading code from .pyc
  192.  
  193. (*) If class C doesn't define __cmp__, cmp(a,b) will return -2 and
  194. [a,b].sort() will fail
  195.  
  196. (*) Syntax errors are reported in a silly way if multi-line tokens are
  197. involved.
  198.  
  199. (*) SyntaxError exception for compile('...') are reported wrongly
  200. (lineno is always zero and offset is offset into the whole string).
  201.  
  202. (*) freeze script needs major rewrite to cope with multiple extensions
  203. (Jack seems to have fixed it now -- where is it?)
  204.  
  205. (*) unwanted entries in stack trace if err_clear() clears an error
  206. that also set a stack trace
  207.  
  208. (*) i, x[i] = a, b assigns b to x[a] rather than to x[i] as expected
  209. (documented with a warning in ref6.tex!)
  210.  
  211. (*) etags no longer supports -t flag
  212.  
  213. (*) compile.c:com_argdefs() references unalloc'ed memory for def
  214. f(a=1,): ...
  215.  
  216. (*) If you have a python binary in your path like
  217. /ufs/guido/bin/sgi/python then the default prefix option computed by
  218. the configure script is bogus!
  219.  
  220. (*) Make rule for making lib*.a should remove the lib*.a file first.
  221.  
  222. (*) vars() error message is wrong (copied from dir() obviously).
  223.  
  224. (*) socket.gethostname() is undocumented.
  225.  
  226. (*) rfc822.py: getfirst* dies when multiple headers occur
  227.  
  228. (*) urllib caching is wrong (should use date from Expires header)
  229.  
  230. (*) On a related matter: regexpr.c still has two malloc()s the results
  231. of which are not tested for being NULL (lines 1253 and 1530).  There
  232. are also some in rgbimagemodule.c.  Am I overlooking something or is
  233. this a crasher?
  234.  
  235. (*) strop.rindex('abc', '') returns 0 instead of 3
  236.  
  237. (*) sunaudiodevmodule.o is too long!
  238.  
  239. (*) toplevel README needs new text on PC and Mac builds
  240.  
  241. (*) long(0x80000000) has wrong value!
  242.  
  243. ======================================================================
  244. Bugs found in 1.0.2 and not yet fixed
  245. -------------------------------------
  246.  
  247. (?) compiler warnings about argument type of uname() on ULTRIX
  248. machines (don't know what to do about it) [could be fixed by fix for
  249. bitfields in struct uname]
  250.  
  251. (?) syntax error for interactive input prints garbage instead of last
  252. source line on some systems (e.g. AIX) (impossible to test/reproduce)
  253. [I think I've found this one -- a missing INCREF in print_error]
  254.  
  255. (?) (maybe) a bad .pyc file (with old magic number) causes the .py
  256. file to be ignored [should be fixed by rewrite of import.c]
  257.  
  258. (?) Sunos4.0.2 / 386 configure bugs:
  259.     - timelocal instead of mktime
  260.     - unistd.h doesn't declare some functions
  261. (don't know what to do about this)
  262.  
  263. Bugs found in 1.0.2 and fixed in 1.0.3
  264. --------------------------------------
  265.  
  266. (*) nasty bug in string formatting (see test_types.py, search for %)
  267.  
  268. (*) if a triple-quoted string ends in a quote followed by a newline
  269. (followed immediately by the terminating 3 quotes) then a syntax error
  270. or system error ensues
  271.  
  272. (*) bug in socket.listen: clipping backlog to >= 1 doesn't work
  273.  
  274. (*) two bogus XDEL's in Modules/regexmodule.reg_dealloc()
  275.  
  276. (*) Parser/myreadline.my_fgets: #endif EINTR misplaced
  277.  
  278. (*) new IP address for ftp.cwi.nl !!!
  279.  
  280. (*) typing vars() to interactive prompt runs into infinite loop
  281. because of '_'
  282.  
  283. (*) tokenizer/tok_nextc() runs into infinite loop when file does not
  284. end in linefeed
  285.  
  286. (*) Sunos4.0.2 / 386 configure bugs:
  287. (*)    - use size_t at some places without including sys/types.h
  288. (*)    - missing clock_t
  289. (*)    - uses SEEK_SET in some places that don't include unistd.h
  290.  
  291. ======================================================================
  292. Bugs found in 1.0.1 and not yet fixed
  293. -------------------------------------
  294.  
  295. (?) threads are slow on Solaris 2
  296. (so what?)
  297.  
  298. (*) threads cause myreadline.c's readline() to think it sees an EOF.
  299. (I *think* I've fixed this, by testing for EINTR)
  300.  
  301. (?) min() on PC version generates wrong result (i.e. same as max())
  302.     [this happens on SoftPC -- don't know about other systems]
  303. (can't find the reason -- may be SoftPC bug)
  304.  
  305. (*) flp.py cache bug: if the cache only contains one form, asking for
  306. all forms returns only the cached form
  307.  
  308. Bugs found in 1.0.1 and fixed in 1.0.2
  309. --------------------------------------
  310.  
  311. (*) core dump when parser.parsefile() called
  312.  
  313. (*) man page contains a mess before -d option
  314.  
  315. (*) threads don't work on IRIX 4
  316.  
  317. (*) wrong cast of svideo_getattr in svmodule.c
  318.  
  319. (*) bad return value in runpython.c's run_tty_1()
  320.  
  321. (*) creating dict of 100,000 objects gets MemoryError or dumps core
  322.  
  323. (*) freeze script doesn't work
  324.  
  325. ======================================================================
  326. BUGS found in 1.0.0 and not yet fixed
  327. -------------------------------------
  328.  
  329. (*) On NeXT, need to define _POSIX_SOURCE.
  330.  
  331. (?) there appears to be something wrong with gcc and -ldl on some
  332. SunOS 4.1.3 systems
  333.  
  334. (?) jredfords reports core dump with float literals
  335.  
  336. BUGS found in 1.0.0 and fixed in 1.0.1
  337. --------------------------------------
  338.  
  339. (*) On SGI IRIX 4 using cc, compilation errors in md5module.c.
  340.  
  341. (*) In cdmodule.c, getattr initialized with (destructor)!
  342.  
  343. (*) Lib/tzparse.py runs test() on import
  344.  
  345. (*) Lib/filewin.py belongs in Lib/stdwin
  346.  
  347. (*) lib and man install targets don't use $(srcdir)
  348.  
  349. (*) Modules/rgbimgmodule.c: exception name contains comma instead of dot
  350.  
  351. (*) The FAQ still references misc/EXTENDING and misc/DYNLOAD etc
  352.  
  353. (*) The FAQ still describes how to work around a problem in 0.9.9 exec()
  354.  
  355. (*) Lib/aifc.py, returns float rate, should be int
  356.  
  357. (*) Lib/sunau.py, incorrectly cumputes byte count from frame rate
  358.  
  359. (*) README should mention possibility of passing OPT=-g to make
  360.  
  361. (*) dynamic loading on sunos 4.1.3 must call dlopen(..., 1)
  362.  
  363. (*) use of <varargs.h> vs. <stdarg.h> should depend on
  364.     HAVE_STDARG_PROTOTYPES, not on HAVE_STDARG_H
  365.  
  366. (*) Doc/README refers to Misc/FTP which in fact does not exist any more
  367.  
  368. (*) filter(None, 'abcdefg') dumps core
  369.  
  370. (*) once you interrupt time.sleep(), there is no interrupt handler!
  371.  
  372. ======================================================================
  373. end of file
  374.